//----------------------------------Include-------------------------------------
#include <stdint.h>
#include "mcu.h"
//------------------------------------------------------------------------------

//--------------------------------Public Func-----------------------------------
void mcu_init_do(void)
{
//periph clock
  RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOA, ENABLE);
  RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOB, ENABLE);
  RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOC, ENABLE);
  RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOD, ENABLE);
  
//Output
  GPIO_InitType     GPIO_InitS;
  GPIO_InitStruct (&GPIO_InitS);
  
  GPIO_InitS.GPIO_Speed      = GPIO_Speed_2MHz;
  GPIO_InitS.GPIO_Mode       = GPIO_Mode_Out_PP;
  
  //PC13 -- LED_RUN
  GPIO_InitS.Pin = GPIO_PIN_13;  GPIO_InitPeripheral(GPIOC, &GPIO_InitS);   GPIO_ResetBits(GPIOC, GPIO_PIN_13);
  
  //PC2 -- relay2   PC3 -- relay1
  GPIO_InitS.Pin = GPIO_PIN_2;   GPIO_InitPeripheral(GPIOC, &GPIO_InitS);   GPIO_ResetBits(GPIOC, GPIO_PIN_2);    //1--short  0--open
  GPIO_InitS.Pin = GPIO_PIN_3;   GPIO_InitPeripheral(GPIOC, &GPIO_InitS);   GPIO_ResetBits(GPIOC, GPIO_PIN_3);
  
  //PB8 -- Cat1_EN
  GPIO_InitS.Pin = GPIO_PIN_8;   GPIO_InitPeripheral(GPIOB, &GPIO_InitS);   GPIO_ResetBits(GPIOB, GPIO_PIN_8);    //1--en
  
  //PA12 -- LCD_BEEP
  GPIO_InitS.Pin = GPIO_PIN_12;  GPIO_InitPeripheral(GPIOA, &GPIO_InitS);   GPIO_ResetBits(GPIOA, GPIO_PIN_12);   //1--on
  //PA11 -- LCD_BL_EN
  GPIO_InitS.Pin = GPIO_PIN_11;  GPIO_InitPeripheral(GPIOA, &GPIO_InitS);   GPIO_ResetBits(GPIOA, GPIO_PIN_11);   //1--on
  //PD2 -- LCD_DO1   PC12 -- LCD_DO2   PC11 -- LCD_DO3   PC10 -- LCD_DO4   PA15 -- LCD_DO5
  GPIO_InitS.Pin = GPIO_PIN_2;   GPIO_InitPeripheral(GPIOD, &GPIO_InitS);   GPIO_SetBits(GPIOD, GPIO_PIN_2);    //0--on
  GPIO_InitS.Pin = GPIO_PIN_12;  GPIO_InitPeripheral(GPIOC, &GPIO_InitS);   GPIO_SetBits(GPIOC, GPIO_PIN_12);   //0--on
  GPIO_InitS.Pin = GPIO_PIN_11;  GPIO_InitPeripheral(GPIOC, &GPIO_InitS);   GPIO_SetBits(GPIOC, GPIO_PIN_11);   //0--on
  GPIO_InitS.Pin = GPIO_PIN_10;  GPIO_InitPeripheral(GPIOC, &GPIO_InitS);   GPIO_SetBits(GPIOC, GPIO_PIN_10);   //0--on
  GPIO_InitS.Pin = GPIO_PIN_15;  GPIO_InitPeripheral(GPIOA, &GPIO_InitS);   GPIO_SetBits(GPIOA, GPIO_PIN_15);   //0--on
  
  //PA0 -- test
  GPIO_InitS.Pin = GPIO_PIN_0;   GPIO_InitPeripheral(GPIOA, &GPIO_InitS);   GPIO_ResetBits(GPIOA, GPIO_PIN_0);
}

//LED
void mcu_led_toggle(void){ GPIO_ReadOutputDataBit(GPIOC, GPIO_PIN_13) ? GPIO_ResetBits(GPIOC, GPIO_PIN_13) : GPIO_SetBits(GPIOC, GPIO_PIN_13); }
//test
void mcu_test_toggle(void){ GPIO_ReadOutputDataBit(GPIOA, GPIO_PIN_0) ? GPIO_ResetBits(GPIOA, GPIO_PIN_0) : GPIO_SetBits(GPIOA, GPIO_PIN_0); }

//relay
void mcu_relay1(uint8_t on){  on ? GPIO_SetBits(GPIOC, GPIO_PIN_3) : GPIO_ResetBits(GPIOC, GPIO_PIN_3); }
void mcu_relay2(uint8_t on){  on ? GPIO_SetBits(GPIOC, GPIO_PIN_2) : GPIO_ResetBits(GPIOC, GPIO_PIN_2); }

//cat1
void mcu_cat1_en(uint8_t on){  on ? GPIO_SetBits(GPIOB, GPIO_PIN_8) : GPIO_ResetBits(GPIOB, GPIO_PIN_8); }

//lcd backlight
void mcu_lcd_backlight(uint8_t on){  on ? GPIO_SetBits(GPIOA, GPIO_PIN_11) : GPIO_ResetBits(GPIOA, GPIO_PIN_11); }
//beep
void mcu_lcd_beep(uint8_t on){  on ? GPIO_SetBits(GPIOA, GPIO_PIN_12) : GPIO_ResetBits(GPIOA, GPIO_PIN_12); }
//leds
void mcu_lcd_led1(uint8_t on){  on ? GPIO_ResetBits(GPIOD, GPIO_PIN_2)  : GPIO_SetBits(GPIOD, GPIO_PIN_2);  }
void mcu_lcd_led2(uint8_t on){  on ? GPIO_ResetBits(GPIOC, GPIO_PIN_12) : GPIO_SetBits(GPIOC, GPIO_PIN_12); }
void mcu_lcd_led3(uint8_t on){  on ? GPIO_ResetBits(GPIOC, GPIO_PIN_11) : GPIO_SetBits(GPIOC, GPIO_PIN_11); }
void mcu_lcd_led4(uint8_t on){  on ? GPIO_ResetBits(GPIOC, GPIO_PIN_10) : GPIO_SetBits(GPIOC, GPIO_PIN_10); }
void mcu_lcd_led5(uint8_t on){  on ? GPIO_ResetBits(GPIOA, GPIO_PIN_15) : GPIO_SetBits(GPIOA, GPIO_PIN_15); }
//------------------------------------EOF---------------------------------------




